package 二叉树相关问题.中度题;

public class 在二叉树中分配硬币 {
    //每个节点需建议|x-1| 次
    int res=0;
    public int distributeCoins(TreeNode root) {
         traverse(root);
         return res;
    }

    private int traverse(TreeNode root) {
        if (root==null)
            return 0;
        if (root.left!=null)
            root.val+=traverse(root.left);
        if (root.right!=null)
            root.val+=traverse(root.right);
        res+= Math.abs(root.val-1);
        return root.val-1;
    }
}
